//#include <stdio.h>
//#include <stdlib.h>
//int Com(void* a, void* b)
//{
//    return *(int*)a - *(int*)b;
//}
//
//int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize) 
//{
//    qsort(nums1, nums1Size, sizeof(int), Com);
//    qsort(nums2, nums2Size, sizeof(int), Com);
//    *returnSize = 0;
//    int* returnArray = (int*)malloc(sizeof(int) * (nums1Size + nums2Size));
//    for (int index1 = 0, index2 = 0; index1 < nums1Size && index2 < nums2Size; )
//    {
//        if (nums1[index1] > nums2[index2])
//            ++index2;
//        else if (nums1[index1] < nums2[index2])
//            ++index1;
//        else
//        {
//            if (!(*returnSize) || nums1[index1] != returnArray[(*returnSize) - 1])
//                returnArray[(*returnSize)++] = nums1[index1];
//            ++index1, ++index2;
//        }
//    }
//    return returnArray;
//}
//
//int main()
//{
//    int nums1[] = { 4, 9, 5 }, nums2[] = { 9, 4, 9, 8, 4 };
//    int returnSize = 0;
//    int* a = intersection(nums1, 3, nums2, 5, &returnSize);
//    for (int i = 0; i < returnSize; i++)
//        printf("%d ", a[i]);
//    return 0;
//}